1. Field of the Invention
The present invention relates generally to internet protocols and, more specifically, to a host subscription management protocol.
2. Description of the Related Art
Internet Protocol (IP) communications generally provide three different types of host communication methods across a network, unicast, broadcast, and multicast. Unicast is a method of point-to-point communication most often used when two hosts need to exchange data with one another and are not concerned with sharing the data with multiple hosts. Broadcast is meant to reach all hosts on a broadcast domain, and multicast allows a group of hosts to receive messages without broadcasting those messages to all of the hosts in a broadcast domain.
An Overview Multicast
Multicast is often the preferred method of communication for many common network distribution applications. This is so because multicast is a bandwidth-conserving technology that reduces traffic by simultaneously delivering data to multiple hosts. An example of an application which utilizes multicast is a video conferencing application. Those hosts wishing to receive the video can join a group, the group having a multicast group IP address. Once the receivers have joined the multicast group, a server responsible for sending the video need only send the video to the multicast group IP address (as opposed to sending the video specifically to each individual host (unicast), or to every host on the network (broadcast)). Other applications which use multicast include corporate communications, distance learning, and distribution of software, stock quotes, and news.
Multicast delivers data to multiple receivers without burdening the source host. This is so because multicast packets are replicated in the network by multicast-enabled routers at the point where paths diverge (multicast-enabled routers are routers which are configured to support multicasting). In contrast, many alternatives to multicast require the source to send more than one copy of the data.
The Multicast Group
Multicast is based on the concept of a group. A multicast group is an arbitrary group of receivers that express an interest in receiving a particular data stream from a source. A host desiring to receive data sent to a multicast group must join the group using Internet Management Group Protocol (IGMP) (discussed below). Only hosts which are members of a given multicast group can receive data sent to that multicast group.
Internet Group Management Protocol (IGMP)
IGMP is a protocol used by hosts and multicast-enabled routers to form and manage a multicast group. To join a group, a host sends an IGMP membership report to a local multicast router. The membership report indicates to the local multicast router that the host is interested in joining a particular multicast group. The address of the multicast group is included in the membership report. The router, recognizing that the host wishes to join the group, establishes a path form the source to the host, and then forwards data to the host accordingly.
There are multiple versions of IGMP, and, consequently, multiple versions of membership reports. IGMP version 1 (IGMPv1) and IGMP version 2 (IGMPv2) membership reports allow a host to include a group address to identify the group which the host wishes to join. IGMP version 3 (IGMPv3) extends the capabilities of IGMPv1 and IGMPv2 by allowing a host to identify not only the group which the host wishes to join, but also the source the host expects the data to be sent from.
Source Specific Multicast (SSM)
It is possible for multiple sources to transmit data to a single multicast group. For example, one source may transmit stock quotes to a multicast group while another source may transmit video conferencing information to the same multicast group. A host which has joined the multicast group to receive the stock quotes may receive, unwillingly, the video conferencing data as well. To alleviate this potential burden, Source Specific Multicast (SSM) extends existing multicast protocols by providing “source filtering” within a multicast network With source filtering, when a host joins a particular multicast group, the host can specify not only the multicast group the host wishes to join, but also the source from which data sent to the multicast group is expected. Source filtering allows a host to block out unwanted or even malicious data streams sent from unknown sources to the multicast group.
SSM implements source filtering through channels, which can be thought of as an extension of groups. A channel is identified by an SSM group address (G) and a source address (S). A source transmits data to a SSM group address (G). A host can receive the data only by subscribing to the channel (S,G) (pronounced S comma G). Thus, a host preferably needs to know both the SSM group address (G) and the source address (S) before the host can subscribe to a channel. The ability to specify a SSM channel address is provided in IGMPv3 membership report (recall from the description above in which an IGMPv3 report allows a host to provide both a group and a source address).
However, many hosts are not configured with IGMPv3, and/or lack the ability to send an IGMPv3 membership report. Although hosts configured with IGMPv1 or IGMPv2 have the ability to specify a group address in a membership report, such hosts lack the ability to specify a source address. Additionally, the potentially large number of host on a network not configured with IGMPv3, and the lack of an efficient upgrade method suggests that these host may not be configured with IGMPv3 for some time. This greatly limits the use of SSM. Consequently, many applications that were designed to operate in an SSM network are useless until the hosts become IGMPv3 compatible. Accordingly, there exists the need for a system and a method of achieving SSM functionality in a network where one, some or all of the hosts lack the ability to subscribe to a channel.